Skill

Ionic Storage এবং Local Database

Mobile App Development - আয়নিক (Ionic)
350

Ionic Storage এবং Local Database Ionic অ্যাপ্লিকেশনগুলিতে ডেটা স্থানীয়ভাবে সঞ্চয় করার জন্য ব্যবহৃত হয়। যখন আপনি একটি অ্যাপ্লিকেশন তৈরি করছেন এবং ব্যবহারকারীর ডেটা লোকাল ডিভাইসে সংরক্ষণ করতে চান, তখন আপনি Ionic Storage বা একটি local database ব্যবহার করতে পারেন। এটি অ্যাপের পারফরম্যান্স উন্নত করতে এবং অফলাইন ব্যবহারের জন্য উপযোগী হতে পারে।

Ionic Storage এবং Local Database-এ কাজ করার জন্য কিছু জনপ্রিয় টুল এবং লাইব্রেরি রয়েছে, যেমন Ionic Storage, SQLite এবং PouchDB

এখানে Ionic Storage এবং Local Database ব্যবহারের বিস্তারিত আলোচনা করা হলো:


১. Ionic Storage

Ionic Storage একটি সিম্পল, অ্যাবস্ট্রাক্টেড লাইব্রেরি যা ডেটা লোকালি সঞ্চয় করতে সহায়ক। এটি IndexedDB, WebSQL এবং localStorage এর উপর ভিত্তি করে কাজ করে এবং এটি ব্যবহারকারীদের জন্য ডেটা সঞ্চয় করতে একটি সহজ API প্রদান করে।

১.১ Ionic Storage ইনস্টল করা

Ionic Storage ব্যবহার করতে প্রথমে @ionic/storage-angular প্যাকেজটি ইনস্টল করতে হবে।

npm install @ionic/storage-angular

১.২ Ionic Storage সেটআপ করা

এখন, আপনার অ্যাপের মডিউলে এটি সেটআপ করুন:

import { IonicStorageModule } from '@ionic/storage-angular';

@NgModule({
  imports: [
    IonicStorageModule.forRoot(),
  ]
})
export class AppModule { }

১.৩ Ionic Storage ব্যবহার করা

Ionic Storage এর মাধ্যমে ডেটা সেট করা এবং পড়া বেশ সহজ। নিচে উদাহরণ দেওয়া হলো:

import { Injectable } from '@angular/core';
import { Storage } from '@ionic/storage-angular';

@Injectable({
  providedIn: 'root'
})
export class StorageService {

  constructor(private storage: Storage) {
    this.storage.create();
  }

  // ডেটা সেট করা
  setItem(key: string, value: any) {
    this.storage.set(key, value);
  }

  // ডেটা রিট্রিভ করা
  getItem(key: string) {
    return this.storage.get(key);
  }

  // ডেটা ডিলিট করা
  removeItem(key: string) {
    return this.storage.remove(key);
  }

  // সব ডেটা ক্লিয়ার করা
  clear() {
    return this.storage.clear();
  }
}

১.৪ Ionic Storage উদাহরণ

এখানে একটি সাধারণ ফাংশন দেওয়া হচ্ছে যেখানে একটি ব্যবহারকারীর নাম সেট করা হচ্ছে এবং পরে সেটি রিট্রিভ করা হচ্ছে:

import { Component, OnInit } from '@angular/core';
import { StorageService } from './storage.service';

@Component({
  selector: 'app-home',
  templateUrl: './home.page.html',
  styleUrls: ['./home.page.scss'],
})
export class HomePage implements OnInit {

  constructor(private storageService: StorageService) {}

  ngOnInit() {
    this.storageService.setItem('userName', 'John Doe');
    this.storageService.getItem('userName').then((name) => {
      console.log(name); // 'John Doe'
    });
  }
}

২. SQLite Database

SQLite হল একটি ছোট এবং ফাস্ট সিস্টেম যা অফলাইন মোডে ডেটা সঞ্চয়ের জন্য ব্যবহার করা যেতে পারে। এটি এমনকি একটি ছোট অ্যাপ্লিকেশনে অনেক বেশি ডেটা হ্যান্ডেল করতে সক্ষম।

২.১ SQLite ইনস্টল করা

SQLite ব্যবহার করতে হলে আপনাকে cordova-sqlite-storage প্লাগইনটি ইনস্টল করতে হবে:

npm install cordova-sqlite-storage

এছাড়াও, আপনাকে এটি প্লাগইন হিসেবে Ionic অ্যাপে যোগ করতে হবে:

ionic cordova plugin add cordova-sqlite-storage
npm install @ionic-native/sqlite

২.২ SQLite সেটআপ এবং ব্যবহার

SQLite ডাটাবেস তৈরি এবং ব্যবহার করার জন্য কিছু কোডের উদাহরণ দেওয়া হলো:

import { SQLite, SQLiteObject } from '@ionic-native/sqlite/ngx';

@Injectable({
  providedIn: 'root'
})
export class DatabaseService {

  constructor(private sqlite: SQLite) {}

  // ডাটাবেস খুলতে
  createDatabase() {
    this.sqlite.create({
      name: 'data.db',
      location: 'default'
    }).then((db: SQLiteObject) => {
      db.executeSql('CREATE TABLE IF NOT EXISTS users(id INTEGER PRIMARY KEY, name TEXT)', [])
        .then(() => console.log('Table created'))
        .catch(e => console.log(e));
    }).catch(e => console.log(e));
  }

  // ডেটা ইনসার্ট করতে
  addUser(name: string) {
    this.sqlite.create({
      name: 'data.db',
      location: 'default'
    }).then((db: SQLiteObject) => {
      db.executeSql('INSERT INTO users (name) VALUES (?)', [name])
        .then(() => console.log('User added'))
        .catch(e => console.log(e));
    }).catch(e => console.log(e));
  }

  // ডেটা রিট্রিভ করতে
  getUsers() {
    this.sqlite.create({
      name: 'data.db',
      location: 'default'
    }).then((db: SQLiteObject) => {
      db.executeSql('SELECT * FROM users', [])
        .then((res) => {
          let users = [];
          for (let i = 0; i < res.rows.length; i++) {
            users.push(res.rows.item(i));
          }
          console.log(users);
        })
        .catch(e => console.log(e));
    }).catch(e => console.log(e));
  }
}

২.৩ SQLite ব্যবহার উদাহরণ

import { Component } from '@angular/core';
import { DatabaseService } from './database.service';

@Component({
  selector: 'app-home',
  templateUrl: './home.page.html',
  styleUrls: ['./home.page.scss'],
})
export class HomePage {

  constructor(private databaseService: DatabaseService) {}

  ngOnInit() {
    this.databaseService.createDatabase();
    this.databaseService.addUser('Alice');
    this.databaseService.getUsers();
  }
}

৩. PouchDB

PouchDB হল একটি জাভাস্ক্রিপ্ট ডেটাবেস যা ব্রাউজারে রান করে এবং CouchDB এর মতো API সরবরাহ করে। এটি মূলত অফলাইন ফিচার সমর্থন করে এবং অ্যাপের ডেটা সিঙ্ক্রোনাইজেশন সহজ করে।

৩.১ PouchDB ইনস্টল করা

npm install pouchdb

৩.২ PouchDB ব্যবহার করা

import * as PouchDB from 'pouchdb';

@Injectable({
  providedIn: 'root'
})
export class PouchDbService {

  private db: any;

  constructor() {
    this.db = new PouchDB('my_database');
  }

  // ডেটা ইনসার্ট করতে
  addItem(doc: any) {
    this.db.put(doc).then(response => {
      console.log('Item added', response);
    }).catch(error => {
      console.log('Error adding item', error);
    });
  }

  // ডেটা রিট্রিভ করতে
  getItem(id: string) {
    this.db.get(id).then(doc => {
      console.log('Item retrieved', doc);
    }).catch(error => {
      console.log('Error retrieving item', error);
    });
  }
}

সারাংশ

  • Ionic Storage: এটা একটি সিম্পল স্টোরেজ সলিউশন যা Web Storage API ব্যবহার করে ডেটা সঞ্চয় করে। এটা ইনস্টল এবং ব্যবহার করা খুবই সহজ।
  • SQLite: এটি একটি শক্তিশালী SQL ডেটাবেস যা আপনার অ্যাপের ডেটা স্থানীয়ভাবে সঞ্চয় করতে সাহায্য করে। এটি অফলাইন অ্যাপের জন্য উপযুক্ত।
  • PouchDB: এটি একটি অফলাইন ফ্লেক্সিবল ডেটাবেস যা ডেটা সিঙ্ক্রোনাইজেশন সমর্থন করে এবং ডেটাকে অ্যাপের মধ্যে সঞ্চয় করতে সাহায্য করে।

এই টুলগুলি আপনার Ionic অ্যাপ্লিকেশনগুলিতে ডেটা সঞ্চয় এবং পরিচালনা করতে সহজে ব্যবহার করা যায়, বিশেষ করে যখন অ্যাপটি অফলাইন মোডে কাজ করবে।

Content added By

Ionic এর মধ্যে Storage ব্যবস্থা

315

Ionic অ্যাপ্লিকেশনগুলোতে ডেটা সঞ্চয় এবং অ্যাক্সেস করার জন্য বিভিন্ন ধরনের storage সিস্টেম ব্যবহার করা হয়। Ionic framework নেটিভ ডিভাইসে ডেটা সংরক্ষণের জন্য কিছু powerful টুলস প্রদান করে, যার মাধ্যমে ডেটা লোকালি বা নেটিভ ডিভাইসে সংরক্ষণ করা সম্ভব হয়। এতে ডেটা অ্যাপ্লিকেশন বন্ধ হলেও টিকে থাকে এবং পরবর্তীতে ব্যবহার করা যায়।

Ionic এ স্টোরেজ ব্যবস্থার জন্য Ionic Storage লাইব্রেরি এবং LocalStorage/ SessionStorage ব্যবহৃত হয়। এটি মূলত অ্যাপ্লিকেশনের মধ্যে ছোট ডেটা সংরক্ষণের জন্য ব্যবহার করা হয় যেমন ইউজারের সেশন তথ্য, পছন্দসই সেটিংস, লগইন ডেটা ইত্যাদি।


১. Ionic Storage

Ionic Storage হলো Ionic ফ্রেমওয়ার্কের একটি প্লাগইন যা স্থানীয় ডেটাবেসে (যেমন IndexedDB, SQLite, LocalStorage, WebSQL) ডেটা সঞ্চয় করার জন্য ব্যবহৃত হয়। এটি Angular এবং Ionic অ্যাপ্লিকেশনের মধ্যে ডেটা পERSIST করার জন্য খুবই কার্যকরী।

Ionic Storage এর সুবিধাসমূহ:

  • কমপ্লেক্স ডেটা স্টোরেজ: Ionic Storage ব্যবহার করে আপনি সহজেই JSON বা অন্যান্য কমপ্লেক্স ডেটা স্টোর করতে পারবেন।
  • প্ল্যাটফর্ম স্বাধীনতা: Ionic Storage Web Storage API ব্যবহার করতে পারে এবং অ্যাপ্লিকেশনটি মোবাইল প্ল্যাটফর্মে চলাকালীনেও কার্যকর থাকে।
  • রিলেশনাল ডেটাবেস সমর্থন: IndexedDB এবং SQLite এর মতো প্ল্যাটফর্মে রিলেশনাল ডেটাবেস সমর্থন দেয়।

Ionic Storage ইনস্টল এবং কনফিগারেশন:

  1. Ionic Storage লাইব্রেরি ইনস্টল করা:

    প্রথমে, Ionic Storage লাইব্রেরিটি ইনস্টল করতে হবে:

    npm install @ionic/storage-angular
    
  2. Ionic Storage কনফিগারেশন:

    অ্যাপ্লিকেশন মডিউলে Ionic Storage সেটআপ করুন:

    import { NgModule } from '@angular/core';
    import { IonicStorageModule } from '@ionic/storage-angular';
    
    @NgModule({
      imports: [
        IonicStorageModule.forRoot()
      ],
    })
    export class AppModule { }
    
  3. Storage Service তৈরি করা:

    এখন একটি সার্ভিস তৈরি করে ডেটা সংরক্ষণ এবং রিট্রিভ করার ফাংশন তৈরি করা যায়:

    import { Injectable } from '@angular/core';
    import { Storage } from '@ionic/storage-angular';
    
    @Injectable({
      providedIn: 'root'
    })
    export class StorageService {
      constructor(private storage: Storage) { }
    
      async init() {
        await this.storage.create();
      }
    
      set(key: string, value: any) {
        this.storage.set(key, value);
      }
    
      get(key: string) {
        return this.storage.get(key);
      }
    
      remove(key: string) {
        this.storage.remove(key);
      }
    
      clear() {
        this.storage.clear();
      }
    }
    
  4. Storage ব্যবহার করা:

    আপনি যেকোনো কম্পোনেন্টে StorageService ব্যবহার করে ডেটা সঞ্চয় এবং রিট্রিভ করতে পারেন:

    import { Component } from '@angular/core';
    import { StorageService } from './storage.service';
    
    @Component({
      selector: 'app-home',
      templateUrl: 'home.page.html',
      styleUrls: ['home.page.scss'],
    })
    export class HomePage {
      constructor(private storageService: StorageService) { }
    
      async saveData() {
        await this.storageService.set('username', 'JohnDoe');
      }
    
      async loadData() {
        const username = await this.storageService.get('username');
        console.log(username);  // Output: JohnDoe
      }
    
      async clearData() {
        await this.storageService.remove('username');
      }
    }
    

Ionic Storage এর পছন্দসই প্ল্যাটফর্ম:

  • IndexedDB: এটি একটি ওয়েব ডেটাবেস API যা ব্রাউজারে ডেটা স্টোর করতে ব্যবহৃত হয় এবং এটি অফলাইন অ্যাপ্লিকেশনগুলির জন্য উপযুক্ত।
  • SQLite: SQLite হল একটি লাইটওয়েট ডেটাবেস যা মোবাইল ডিভাইসের জন্য খুবই কার্যকরী। Ionic Storage SQLite প্লাগইনটি মোবাইল ডিভাইসে ডেটা সংরক্ষণের জন্য ব্যবহার করা যায়।
  • WebSQL: যদিও এটি পুরনো প্রযুক্তি, এটি কিছু ব্রাউজারে ব্যবহৃত হতে পারে।

২. LocalStorage ও SessionStorage

LocalStorage এবং SessionStorage হল ওয়েব স্টোরেজের দুটি গুরুত্বপূর্ণ প্রযুক্তি, যা সাধারনত ব্রাউজারেই ব্যবহৃত হয়।

  • LocalStorage: এটি ওয়েব ব্রাউজারে ডেটা স্টোর করতে ব্যবহার করা হয় এবং এটি ডেটা স্থায়ীভাবে সংরক্ষণ করে, অর্থাৎ অ্যাপ বা ব্রাউজার বন্ধ হলেও ডেটা মুছে যায় না।
  • SessionStorage: এটি একইভাবে ডেটা সংরক্ষণ করে তবে এটি শুধুমাত্র সেশন চলাকালীন সময়ে কার্যকর থাকে। ব্রাউজার বা ট্যাব বন্ধ করলে ডেটা মুছে যায়।

LocalStorage ব্যবহার করা:

// LocalStorage থেকে ডেটা সেট করা
localStorage.setItem('username', 'JohnDoe');

// LocalStorage থেকে ডেটা নিয়ে আসা
let username = localStorage.getItem('username');
console.log(username); // Output: JohnDoe

// LocalStorage থেকে ডেটা মুছে ফেলা
localStorage.removeItem('username');

SessionStorage ব্যবহার করা:

// SessionStorage থেকে ডেটা সেট করা
sessionStorage.setItem('sessionID', '12345');

// SessionStorage থেকে ডেটা নিয়ে আসা
let sessionID = sessionStorage.getItem('sessionID');
console.log(sessionID); // Output: 12345

// SessionStorage থেকে ডেটা মুছে ফেলা
sessionStorage.removeItem('sessionID');

৩. Storage ব্যবস্থার উপকারিতা

  1. অফলাইন সাপোর্ট: Ionic Storage এর মাধ্যমে আপনি অ্যাপ্লিকেশনকে অফলাইনে কাজ করার জন্য প্রস্তুত করতে পারেন, যেখানে ব্যবহারকারী যেকোনো সময় ডেটা অ্যাক্সেস করতে পারে, এমনকি যদি নেটওয়ার্ক অ্যাক্সেস না থাকে।
  2. ডেটা সঞ্চয়ের স্থিতিশীলতা: Ionic Storage এবং Web Storage API ব্যবহার করলে অ্যাপ্লিকেশনটি বন্ধ হলেও ডেটা সুরক্ষিত থাকে এবং পরবর্তী ব্যবহারকারীর জন্য উপলব্ধ থাকে।
  3. প্রদর্শন দ্রুত: ব্যবহারকারী যখন পরবর্তী বার অ্যাপ খুলবে, তখন তাদের পূর্বের অবস্থায় ফিরে যাওয়ার জন্য প্রাসঙ্গিক ডেটা লোড করতে পারে, যা দ্রুততার সাথে ইউজার এক্সপেরিয়েন্স উন্নত করে।

সারাংশ

Ionic অ্যাপ্লিকেশনে Storage ব্যবস্থার মাধ্যমে আপনি ব্যবহারকারীর তথ্য বা অ্যাপের প্রাসঙ্গিক ডেটা সঞ্চয় করতে পারেন। Ionic Storage একটি শক্তিশালী টুল যা IndexedDB, SQLite, WebSQL এবং LocalStorage/SessionStorage ব্যবহার করে ডেটা সংরক্ষণ করতে সাহায্য করে। এটি অ্যাপের পারফরম্যান্স এবং ইউজার এক্সপেরিয়েন্স উন্নত করার জন্য অপরিহার্য।

Content added By

Ionic Storage ব্যবহার করে ডেটা সংরক্ষণ

292

Ionic Storage একটি লাইটওয়েট এবং অ্যাসিঙ্ক্রোনাস স্টোরেজ সলিউশন, যা আপনাকে ডিভাইসে ডেটা সংরক্ষণ করতে সহায়তা করে। এটি Ionic অ্যাপ্লিকেশনের মধ্যে কমপ্লেক্স ডেটা যেমন ইউজার প্রেফারেন্স, লগইন ইনফরমেশন, অথবা কোন টেম্পোরারি ডেটা সংরক্ষণ করতে ব্যবহৃত হয়।

Ionic Storage আপনার অ্যাপের ডেটা স্টোর করার জন্য পছন্দসই প্ল্যাটফর্মের স্টোরেজ ব্যবহার করে, যেমন IndexedDB, SQLite, বা LocalStorage।


১. Ionic Storage ইনস্টলেশন

Ionic Storage ব্যবহার করতে হলে প্রথমে এটি ইনস্টল করতে হবে।

১.১ Ionic Storage প্যাকেজ ইনস্টল করা

Ionic Storage ইনস্টল করতে, টার্মিনাল বা কমান্ড প্রম্পটে নিচের কমান্ডটি রান করুন:

npm install @ionic/storage-angular

এটি Ionic Storage এর প্রয়োজনীয় প্যাকেজ ইনস্টল করবে।

১.২ Ionic Storage মডিউল অ্যাপের মডিউলে যুক্ত করা

app.module.ts ফাইলে Ionic Storage মডিউল যুক্ত করতে হবে।

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { IonicModule } from '@ionic/angular';
import { AppComponent } from './app.component';
import { IonicStorageModule } from '@ionic/storage-angular';

@NgModule({
  declarations: [AppComponent],
  imports: [
    BrowserModule,
    IonicModule.forRoot(),
    IonicStorageModule.forRoot()  // Ionic Storage মডিউল যুক্ত করা
  ],
  bootstrap: [AppComponent]
})
export class AppModule {}

২. Ionic Storage ব্যবহার করা

Ionic Storage ব্যবহার করতে হলে প্রথমে Storage সার্ভিস ইনজেক্ট করতে হবে এবং তারপর সেটি ব্যবহার করে ডেটা স্টোর ও রিট্রিভ করা যাবে।

২.১ Storage সার্ভিস ইনজেক্ট করা

যে কম্পোনেন্ট বা সার্ভিসে আপনি ডেটা সংরক্ষণ বা রিট্রিভ করতে চান, সেখানে Storage সার্ভিস ইনজেক্ট করুন।

import { Component } from '@angular/core';
import { Storage } from '@ionic/storage-angular';

@Component({
  selector: 'app-home',
  templateUrl: 'home.page.html',
  styleUrls: ['home.page.scss'],
})
export class HomePage {

  constructor(private storage: Storage) {}

  // ডেটা সংরক্ষণ করা
  async setData() {
    await this.storage.set('name', 'Ionic User');
    console.log('Data saved');
  }

  // ডেটা রিট্রিভ করা
  async getData() {
    const name = await this.storage.get('name');
    console.log('Stored name:', name);
  }
}

২.২ ডেটা সংরক্ষণ এবং রিট্রিভ করা

  • setData() মেথডে storage.set() ব্যবহার করে ডেটা সংরক্ষণ করা হচ্ছে।
  • getData() মেথডে storage.get() ব্যবহার করে ডেটা রিট্রিভ করা হচ্ছে।

৩. Ionic Storage এর বিভিন্ন অপশন

Ionic Storage কিছু অপশন সরবরাহ করে যেগুলি আপনার অ্যাপের স্টোরেজ সলিউশন কাস্টমাইজ করতে সাহায্য করবে। এটি ডিফল্টভাবে IndexedDB ব্যবহার করে, তবে আপনি LocalStorage, SQLite অথবা WebSQL ইত্যাদি ব্যবহার করতে পারেন।

৩.১ Ionic Storage কনফিগারেশন

Ionic Storage কনফিগার করার জন্য Storage মডিউলে কিছু কনফিগারেশন দিতে পারেন, যেমন ডিফল্ট ড্রাইভ নির্বাচন করা।

import { IonicStorageModule } from '@ionic/storage-angular';

@NgModule({
  imports: [
    IonicStorageModule.forRoot({
      driverOrder: ['localstorage', 'sqlite', 'websql'] // ড্রাইভের অর্ডার নির্ধারণ
    })
  ]
})
export class AppModule {}

এখানে:

  • driverOrder: এটি ডেটা সংরক্ষণের জন্য Ionic Storage যেসব ড্রাইভ (LocalStorage, SQLite, WebSQL) ব্যবহার করবে তার অর্ডার নির্ধারণ করে।

৪. Complex Data (অবজেক্ট) সংরক্ষণ করা

Ionic Storage আপনাকে স্টোরেজে অবজেক্ট বা JSON ডেটাও সংরক্ষণ করতে সহায়তা করে। এটি সোজা JSON স্ট্রিং হিসেবে ডেটা সংরক্ষণ করে।

৪.১ অবজেক্ট স্টোর করা

async setUserData() {
  const user = {
    name: 'John Doe',
    age: 30,
    email: 'john.doe@example.com'
  };

  await this.storage.set('user', user);
  console.log('User data saved');
}

৪.২ অবজেক্ট রিট্রিভ করা

async getUserData() {
  const user = await this.storage.get('user');
  console.log('Stored user data:', user);
}

৫. Storage থেকে ডেটা ডিলিট করা

Ionic Storage ব্যবহার করে আপনি ডেটা ডিলিটও করতে পারেন।

৫.১ ডেটা ডিলিট করা

async removeData() {
  await this.storage.remove('name');
  console.log('Data removed');
}

এটি name কী থেকে সংরক্ষিত ডেটা মুছে ফেলবে।


৬. Storage ক্লিয়ার করা

আপনি যদি সমস্ত ডেটা মুছে ফেলতে চান, তাহলে clear() মেথড ব্যবহার করতে পারেন।

৬.১ সব ডেটা ক্লিয়ার করা

async clearData() {
  await this.storage.clear();
  console.log('All data cleared');
}

সারাংশ

Ionic Storage ব্যবহার করে আপনি মোবাইল ডিভাইসে ডেটা সংরক্ষণ এবং রিট্রিভ করতে পারেন। এটি একটি সহজ এবং শক্তিশালী API সরবরাহ করে যা আপনাকে অ্যাসিঙ্ক্রোনাসভাবে ডেটা সংরক্ষণ করতে এবং ডিভাইসের স্টোরেজের সাথে ইন্টিগ্রেট করতে সাহায্য করে। আপনি বিভিন্ন ডেটা ড্রাইভ যেমন LocalStorage, IndexedDB, এবং SQLite ব্যবহার করতে পারেন এবং কমপ্লেক্স অবজেক্ট যেমন JSON ডেটা সংরক্ষণ ও রিট্রিভ করতে পারেন।

Content added By

SQLite এবং NoSQL (Ionic Storage) Integration

346

Ionic অ্যাপ্লিকেশনগুলোতে ডেটাবেস ব্যবহারের জন্য আপনি দুটি প্রধান বিকল্প ব্যবহার করতে পারেন: SQLite এবং NoSQL (যেমন Ionic Storage)। SQLite একটি সম্পর্কিত ডেটাবেস (RDBMS) হিসেবে কাজ করে, যেখানে ডেটা টেবিল এবং রিলেশনশিপের মাধ্যমে স্টোর হয়, আর NoSQL ডেটাবেস (যেমন Ionic Storage) সাধারণত JSON স্টাইল ডেটা সংরক্ষণ করে।

Ionic অ্যাপ্লিকেশনে SQLite এবং Ionic Storage Integration নিয়ে বিস্তারিত আলোচনা করা হলো।


১. SQLite Integration

SQLite হলো একটি ছোট এবং হালকা ওজনের সম্পর্কিত ডেটাবেস, যা মোবাইল ডিভাইসে সহজে ইনস্টল করা যায় এবং অল্প রিসোর্সে কাজ করে। Ionic অ্যাপ্লিকেশনে SQLite ব্যবহার করতে হলে আপনাকে SQLite Plugin ইনস্টল করতে হবে।

SQLite ইনস্টল করা

  1. SQLite Plugin ইনস্টল করুন:
    • প্রথমে, আপনার Ionic প্রজেক্টে @ionic-native/sqlite এবং cordova-sqlite-storage প্লাগইন ইনস্টল করতে হবে।
ionic cordova plugin add cordova-sqlite-storage
npm install @ionic-native/sqlite
  1. AppModule এ ইনপোর্ট করুন:
import { SQLite } from '@ionic-native/sqlite/ngx';

@NgModule({
  providers: [
    SQLite
  ]
})
export class AppModule { }
  1. SQLite ডাটাবেস ব্যবহার করা

SQLite ডাটাবেস তৈরি করতে এবং ডেটা প্রবেশ করতে নীচের কোড ব্যবহার করতে পারেন।

import { Component } from '@angular/core';
import { SQLite, SQLiteObject } from '@ionic-native/sqlite/ngx';

@Component({
  selector: 'app-home',
  templateUrl: 'home.page.html',
  styleUrls: ['home.page.scss'],
})
export class HomePage {
  constructor(private sqlite: SQLite) {}

  createDatabase() {
    this.sqlite.create({
      name: 'data.db',
      location: 'default'
    }).then((db: SQLiteObject) => {
      db.executeSql('create table if not exists people(id integer primary key, name text, age integer)', [])
        .then(() => console.log('Table created'))
        .catch(e => console.log(e));
    }).catch(e => console.log(e));
  }

  addData() {
    this.sqlite.create({
      name: 'data.db',
      location: 'default'
    }).then((db: SQLiteObject) => {
      db.executeSql('insert into people (name, age) values (?, ?)', ['John Doe', 30])
        .then(() => console.log('Data added'))
        .catch(e => console.log(e));
    }).catch(e => console.log(e));
  }

  getData() {
    this.sqlite.create({
      name: 'data.db',
      location: 'default'
    }).then((db: SQLiteObject) => {
      db.executeSql('select * from people', [])
        .then((res) => {
          for (var i = 0; i < res.rows.length; i++) {
            console.log(res.rows.item(i));
          }
        }).catch(e => console.log(e));
    }).catch(e => console.log(e));
  }
}

এখানে, একটি SQLite ডাটাবেস তৈরি করা হচ্ছে, একটি টেবিল তৈরি করা হচ্ছে এবং ডেটা ইনসার্ট ও সিলেক্ট করা হচ্ছে।


২. Ionic Storage (NoSQL) Integration

Ionic Storage হলো একটি NoSQL ডেটাবেস, যা ছোট অ্যাপ্লিকেশন ডেটা সংরক্ষণ করতে ব্যবহার করা হয়। এটি মূলত localStorage বা IndexedDB ব্যবহার করে ডেটা সংরক্ষণ করে।

Ionic Storage ইনস্টলেশন

  1. Ionic Storage ইনস্টল করুন:
npm install @ionic/storage-angular
  1. AppModule এ ইনপোর্ট করুন:
import { IonicStorageModule } from '@ionic/storage-angular';

@NgModule({
  imports: [
    IonicStorageModule.forRoot()
  ],
  providers: []
})
export class AppModule {}
  1. Ionic Storage ব্যবহার করা

Ionic Storage ব্যবহার করতে হবে Storage সার্ভিসের মাধ্যমে।

import { Component } from '@angular/core';
import { Storage } from '@ionic/storage-angular';

@Component({
  selector: 'app-home',
  templateUrl: 'home.page.html',
  styleUrls: ['home.page.scss'],
})
export class HomePage {
  constructor(private storage: Storage) {}

  async setData() {
    await this.storage.set('name', 'John Doe');
    console.log('Data saved');
  }

  async getData() {
    const name = await this.storage.get('name');
    console.log('Retrieved name:', name);
  }

  async clearData() {
    await this.storage.remove('name');
    console.log('Data removed');
  }
}

এখানে:

  • setData(): স্টোরেজে ডেটা সংরক্ষণ করা হচ্ছে।
  • getData(): স্টোরেজ থেকে ডেটা পড়া হচ্ছে।
  • clearData(): স্টোরেজ থেকে ডেটা মুছে ফেলা হচ্ছে।

৩. SQLite এবং Ionic Storage এর মধ্যে পার্থক্য

ফিচারSQLiteIonic Storage
ধরণসম্পর্কিত ডেটাবেস (RDBMS)NoSQL ডেটাবেস
ডেটা সংরক্ষণটেবিল এবং রিলেশনশিপ ব্যবহার করেকীগুলির মাধ্যমে JSON ডেটা সংরক্ষণ
অ্যাসিনক্রোনাস অপারেশনহ্যাঁ (অ্যাসিনক্রোনাস API)হ্যাঁ (Promise এবং Async ব্যবহার করে)
কনফিগারেশনপ্লাগইন ভিত্তিককমপ্যাক্ট, সেটআপ সহজ
ডেটার আকারসাধারণত বড় ডেটাবেসের জন্য উপযুক্তছোট ও মাঝারি আকারের ডেটা সংরক্ষণের জন্য
ব্যবহারবড় অ্যাপ্লিকেশন, অ্যাডভান্সড কুয়েরিসহজ এবং ছোট ডেটা সংরক্ষণ

সারাংশ

  • SQLite ব্যবহার করা হয় যখন আপনার অ্যাপ্লিকেশনে সম্পর্কিত ডেটাবেস ম্যানেজমেন্ট এবং জটিল কুয়েরি প্রক্রিয়ার প্রয়োজন হয়। এটি অ্যাপ্লিকেশনের জন্য একটি পূর্ণাঙ্গ RDBMS সলিউশন।
  • Ionic Storage হল একটি হালকা ওজনের NoSQL ডেটাবেস, যা ছোট এবং মাঝারি আকারের ডেটা সংরক্ষণের জন্য আদর্শ, যেমন ইউজার প্রেফারেন্স, টোকেন, কনফিগারেশন ইত্যাদি।

আপনি আপনার অ্যাপ্লিকেশনের প্রয়োজন অনুসারে SQLite বা Ionic Storage ব্যবহার করতে পারেন। SQLite বড় এবং সম্পর্কিত ডেটাবেসের জন্য উপযুক্ত, যেখানে Ionic Storage দ্রুত ডেটা সংরক্ষণ এবং রিট্রিভ করার জন্য সহজ পদ্ধতি।

Content added By

File System Access এবং Data Management

311

File System Access এবং Data Management অ্যাপ্লিকেশনের মধ্যে ডেটার সংগঠন এবং পরিচালনা একটি গুরুত্বপূর্ণ অংশ। যখন আপনার অ্যাপ্লিকেশন ফাইলের মাধ্যমে ডেটা পরিচালনা করতে চায়, তখন এটি File System Access API এর মাধ্যমে কাজ করে। Angular এর মাধ্যমে ফাইল সিস্টেম অ্যাক্সেস এবং ডেটা ম্যানেজমেন্ট করার জন্য কিছু সাধারণ পদ্ধতি রয়েছে। এই লেখায় আমরা File System Access API, Local Storage, IndexedDB, এবং Backend APIs সহ অন্যান্য ডেটা ম্যানেজমেন্ট কৌশলগুলো আলোচনা করবো।


১. File System Access API

File System Access API আপনাকে ব্রাউজারের মাধ্যমে ডিরেক্টরি এবং ফাইলের সাথে ইন্টারঅ্যাক্ট করার অনুমতি দেয়। এটি ফাইল সিস্টেমে ফাইল পড়া, লেখা এবং পরিবর্তন করার সুযোগ দেয়। যদিও এটি শুধুমাত্র সমর্থিত ব্রাউজারে কাজ করে, তবে এটি একটি শক্তিশালী API যা ক্লায়েন্ট-সাইড ফাইল হ্যান্ডলিং সহজ করে।

১.১ File System Access API এর সাথে কাজ করা

প্রথমে, আপনার অ্যাপ্লিকেশনে ফাইল সিস্টেম অ্যাক্সেস করার জন্য requestFileSystem() বা showOpenFilePicker() ফাংশন ব্যবহার করা হয়।

১.২ ফাইল ওপেন করার উদাহরণ

async openFile() {
  try {
    const fileHandle = await window.showOpenFilePicker();
    const file = await fileHandle[0].getFile();
    const fileContent = await file.text();
    console.log(fileContent);
  } catch (error) {
    console.error('File opening failed:', error);
  }
}

এখানে showOpenFilePicker() ব্যবহার করা হয়েছে যা ইউজারের ফাইল সিলেক্ট করার জন্য ডায়ালগ খুলবে এবং নির্বাচিত ফাইলের কন্টেন্ট রিড করবে।

১.৩ ফাইল সেভ করা উদাহরণ

async saveFile(content: string) {
  try {
    const handle = await window.showSaveFilePicker();
    const writableStream = await handle.createWritable();
    await writableStream.write(content);
    await writableStream.close();
  } catch (error) {
    console.error('File saving failed:', error);
  }
}

এটি ইউজারের কাছে ফাইল সেভ করার জন্য পিকারের মাধ্যমে সেভ করতে সহায়তা করে।


২. Local Storage

Local Storage হলো ওয়েব স্টোরেজের একটি বিশেষ ধরনের স্টোরেজ যা ব্রাউজারের মধ্যে ডেটা সংরক্ষণ করে। এটি ক্লায়েন্ট-সাইড ডেটার জন্য কার্যকরী, তবে এটি একেবারে ছোট পরিমাণ ডেটা সংরক্ষণের জন্য উপযুক্ত।

২.১ Local Storage এ ডেটা সংরক্ষণ

localStorage.setItem('userName', 'John Doe');

২.২ Local Storage থেকে ডেটা রিড করা

const userName = localStorage.getItem('userName');
console.log(userName); // Output: John Doe

২.৩ Local Storage থেকে ডেটা মুছে ফেলা

localStorage.removeItem('userName');

২.৪ Local Storage পরিষ্কার করা

localStorage.clear();

৩. IndexedDB

IndexedDB একটি ব্রাউজার ভিত্তিক ডেটাবেজ, যা স্ট্রাকচারড ডেটা সংরক্ষণের জন্য ব্যবহৃত হয়। এটি বড় পরিমাণ ডেটা সঞ্চয়ের জন্য উপযুক্ত এবং অ্যাসিনক্রোনাস অপারেশন সমর্থন করে।

৩.১ IndexedDB এ ডেটা সংরক্ষণ

let request = indexedDB.open("myDatabase", 1);
request.onsuccess = function(event) {
  let db = event.target.result;
  let transaction = db.transaction(["users"], "readwrite");
  let store = transaction.objectStore("users");
  store.add({ id: 1, name: "John Doe" });
};

request.onerror = function(event) {
  console.log("Database error: " + event.target.errorCode);
};

৩.২ IndexedDB থেকে ডেটা রিড করা

let request = indexedDB.open("myDatabase", 1);
request.onsuccess = function(event) {
  let db = event.target.result;
  let transaction = db.transaction(["users"], "readonly");
  let store = transaction.objectStore("users");
  let getRequest = store.get(1); // Get data by ID

  getRequest.onsuccess = function(event) {
    console.log(getRequest.result); // { id: 1, name: "John Doe" }
  };
};

৪. Backend APIs (Server-side data management)

আপনার অ্যাপ্লিকেশন যদি বড় আকারের ডেটা পরিচালনা করতে চায় বা একাধিক ইউজারের সাথে কাজ করে, তবে আপনি Backend APIs এর মাধ্যমে ডেটা ম্যানেজ করতে পারবেন। সাধারণত, RESTful API অথবা GraphQL API ব্যবহৃত হয় সার্ভার থেকে ডেটা ফেচ বা আপডেট করার জন্য।

৪.১ HttpClient ব্যবহার করে Backend API থেকে ডেটা ফেচ করা

import { HttpClient } from '@angular/common/http';

@Component({
  selector: 'app-data',
  templateUrl: './data.component.html',
  styleUrls: ['./data.component.scss'],
})
export class DataComponent {
  constructor(private http: HttpClient) {}

  fetchData() {
    this.http.get('https://api.example.com/data').subscribe(response => {
      console.log(response);
    });
  }
}

এটি একটি সিম্পল API কল করে সার্ভার থেকে ডেটা ফেচ করার উদাহরণ।

৪.২ POST ডেটা পাঠানো

const userData = { name: 'John Doe', email: 'john@example.com' };
this.http.post('https://api.example.com/users', userData).subscribe(response => {
  console.log(response);
});

৫. File Handling in Ionic

Ionic এ ফাইল হ্যান্ডলিংয়ের জন্য Cordova File Plugin বা Capacitor Filesystem Plugin ব্যবহার করা হয়, যা নেটিভ মোবাইল ডিভাইসের ফাইল সিস্টেমে ডেটা সংরক্ষণ এবং পড়ার সুবিধা দেয়।

৫.১ Capacitor Filesystem Example

npm install @capacitor/filesystem
npx cap sync
import { Filesystem, Directory, Encoding } from '@capacitor/filesystem';

async saveData() {
  await Filesystem.writeFile({
    path: 'myData.txt',
    data: 'Hello, Ionic!',
    directory: Directory.Documents,
    encoding: Encoding.UTF8
  });
}

async readData() {
  const result = await Filesystem.readFile({
    path: 'myData.txt',
    directory: Directory.Documents,
    encoding: Encoding.UTF8
  });
  console.log(result.data); // Output: Hello, Ionic!
}

উপসংহার

  • File System Access API: ব্রাউজারের ফাইল সিস্টেমের সাথে সরাসরি যোগাযোগ করতে ব্যবহার করা হয়, তবে এটি শুধুমাত্র কিছু ব্রাউজারে সমর্থিত।
  • Local Storage: ছোট পরিমাণ ডেটা সংরক্ষণ করতে উপযুক্ত, তবে এটি খুব সীমিত এবং স্কেলেবল নয়।
  • IndexedDB: বড় পরিমাণ ডেটা এবং স্ট্রাকচারড ডেটার জন্য আদর্শ।
  • Backend APIs: ডেটাবেস এবং সার্ভার সাইড ডেটা ম্যানেজমেন্টের জন্য ব্যবহৃত হয়।
  • Capacitor Filesystem: মোবাইল অ্যাপ্লিকেশনে ফাইল পরিচালনা এবং ডেটা সংরক্ষণের জন্য ব্যবহৃত হয়।

এই প্রযুক্তি ব্যবহার করে আপনি আপনার অ্যাপ্লিকেশনের ডেটা ম্যানেজমেন্ট এবং ফাইল হ্যান্ডলিং আরও কার্যকরী ও সুরক্ষিতভাবে পরিচালনা করতে পারবেন।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...